class MyClass02 {
    public name: string
    public sex: boolean

    // 私有属性，不可被外部修改
    private _age: number
    get age(): number {
        return this._age;
    }

    set age(value: number) {
        if (!value || value < 0) {
            console.warn('age 必须大于0，小于0将重置为0');
            this._age = 0
        } else {
            this._age = value
        }
    }

    // 受保护的，只能自己和子类能访问
    protected type: number
}

let myClass02 = new MyClass02()
myClass02.name = 'xxx'
myClass02.sex = true

// 修改私有属性
myClass02.age = -10

console.log(myClass02.age);
console.log(myClass02)


// MyClass02 的子类
class SubMyClass02 extends MyClass02 {

    // 修改父类属性
    setType(type: number) {
        this.type = type
    }

    // 获取父类属性
    info(): void {
        console.log('类型：' + this.type);
    }

}

let subMyClass02 = new SubMyClass02()
subMyClass02.setType(100)
subMyClass02.info()